package chapter1;

/**
 * @Author juzipi
 * @Date 2021/5/10 16:17
 * @Info
 */
public class ClassInitTest {

    private static int a = 10;

    static {
        a = 2;
        b = 300;
//        System.out.println(b);//非法的前向引用
    }

    //初始化就是执行类构造器方法的过程
    //在准备阶段会给它赋一个该类型的初始值（0），
    //初始化阶段会进行赋值的动作，而构造器方法中指令是按语句在源文件中出现的顺序执行的
    //所以b会先赋值为300再赋值为100
    private static int b = 100;

    public static void main(String[] args) {
        System.out.println(ClassInitTest.a);
        System.out.println(ClassInitTest.b);
    }


}
